<!doctype html>
<html>

<script src="../../resources/js-test.js"></script>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/visibility.js"></script>

<script>
description('Checks that timers maintain their scheduled order while the page is invisible.');

var jsTestIsAsync = true;
var expectedIndices = [];
var indices = [];

function processTimer(index)
{
  indices.push(index);
  if (indices.length == expectedIndices.length) {
    debug(indices);
    shouldBeTrue('areArraysEqual(expectedIndices, indices)');
    finishJSTest();
  }
}

function runTest()
{
  assert_equals(document.visibilityState, "hidden")

  for (var i = 0; i < 100; i++) {
    expectedIndices.push(i);
    setTimeout(function(i) {
      return function() {
        processTimer(i);
      }
    }(i), 0);
  }
}
</script>

<body onload="setMainWindowHidden(true).then(runTest)">
</body>
</html>
